"""
基本的日期与时间转换

问题：
    你需要执行简单的时间转换，比如天到秒，小时到分钟等的转换。
解决方案：
    为了执行不同时间单位的转换和计算，请使用 datetime 模块。
    如果你想表示指定的日期和时间，先创建一个 datetime 实例然后使用标准的数学运算来操作它们。
    在计算的时候，需要注意的是 datetime 会自动处理闰年。
"""

from datetime import timedelta
from datetime import datetime


def use_timedelta():
    x = timedelta(days=2, hours=6)
    y = timedelta(hours=4.5)
    z = x + y
    print(z.days, z.seconds, z.seconds / 3600, z.total_seconds() / 3600)
    # 输出结果：
    """
    2 37800 10.5 58.5
    """


def use_datetime():
    x = datetime(2018, 5, 28)
    y = datetime(2018, 6, 2)
    z = y - x
    now = datetime.now()
    print(x + timedelta(days=5))
    print(z.days)
    print(now + timedelta(minutes=10))
    # 输出结果：
    """
    2018-06-02 00:00:00
    5
    2018-05-28 22:30:18.273874
    """

    # 需要注意闰年
    x = datetime(2012, 3, 1)
    y = datetime(2012, 2, 28)
    print((x - y).days)
    x = datetime(2013, 3, 1)
    y = datetime(2013, 2, 28)
    print((x - y).days)
    # 输出结果：
    """
    2
    1
    """


if __name__ == '__main__':
    use_timedelta()
    use_datetime()
